﻿<p><em>IfcPropertyTemplateDefinition</em> is a generalization of all property and property set templates. Templates define the collection, types, names, applicable measure types and units of individual properties used in a project. The property template definition can be either:</p>
<ul>
<li><strong>Property set template</strong> - <em>IfcPropertySetTemplate</em>, a collection of property templates that determine the definition of properties used within a project context.</li>
<li><strong>Property template</strong> - <em>IfcPropertyTemplate</em>, a single template that determines the definition of a particular property used in the same project context. The template may determine the name, description, data type, the unit, or a standard expression for each property that is
based on that template.</li>
</ul>
<p>The subtypes of <em>IfcPropertyTemplateDefinition</em> are declared within a project context. The uppermost template definition (e.g. the <em>IfcPropertySetTemplate</em> including several <em>IfcPropertyTemplate</em>'s) should be related to the context, either <em>IfcProject</em>, or <em>IfcProjectLibrary</em>, using the inherited <em>HasContext</em> inverse attribute.</p>

<blockquote class="history">
HISTORY&nbsp; New entity in IFC4.
</blockquote>